package cn.ycxy.lbl.posts.service;

public interface ILikeService {

    /**
     * 点赞
     * @param userId  登录用户id
     * @param entityType    实体类型
     * @param entityId  实体id
     */
    void like(long userId, int entityType, int entityId);

    /**
     * 查询某个实体点赞
     * @param entityType
     * @param entityId
     * @return
     */
    long findEntityLikeCount(int entityType, int entityId);

    /**
     * 查询用户对某个实体点赞状态
     * @param userId
     * @param entityType
     * @param entityId
     * @return
     */
    int findEntityLikeStatus(long userId, int entityType, int entityId);


    /**
     * 记录用户对某个实体的浏览
     * @param userId
     * @param entityType
     * @param entityId
     * @return
     */
    void recordEntityWatch(long userId, int entityType, int entityId);

    /**
     * 记录用户对某个实体想购买
     * @param userId
     * @param entityType
     * @param entityId
     * @return
     */
    void recordEntityWant(long userId, int entityType, int entityId);

    /**
     * 获取某个实体浏览的人数
     * @param entityType
     * @param entityId
     * @return
     */
    long findEntityWatchCount(int entityType, int entityId);
    /**
     * 获取某个实体想购买的人数
     * @param entityType
     * @param entityId
     * @return
     */
    long findEntityWantCount(int entityType, int entityId);
}
